// vim:sw=4:ai:aw
#ident	"@(#)RandomFit.c	1.1	AKK/CII	20090208"

#include <stdlib.h>		// voor: rand
#include "asserts.h"		// voor: require

#include "RandomFit.h"

// iemand vraagt om 'wanted' geheugen
const Area	* RandomFit::alloc( int wanted )
{
    require( wanted > 0 );	// minstens "iets",
    require( wanted <= size );	// maar niet meer dan we kunnen hebben.

    int  base = 0;
    if (wanted < size) {		// valt er wat te "gokken" ?
	base = rand();			// gooi dan de dobbelsteen
	base %= (size - wanted);	// maar blijf binnen de grenzen...
    }
    // else er valt niets te gokken.

    return new Area( base, wanted );
    	// Pas op:
    	// We garanderen niet dat dat gebied helemaal vrij is,
    	// dit is en blijft een "gokjes" algoritme  8-)
}


// iemand levert een gebied weer in
void	RandomFit::free( const Area * ap )
{
    // Omdat RandomFit helemaal niets doet aan boekhouding
    // kunnen we hier volstaan met ...
    delete  ap;
}
